Descritption de notre sujet

Notre projet porte sur la représentation des Aibnbs au sein des grandes capitales européennes, plus particulièrement sur le prix de location des biens imobiliers renseignés sur l’application.
Notre travail comporte deux parties. Dans la première nous tenterons d’expliquer les différences de prix entre les logements et dans la deuxième nous nous intéresserons à la représentation graphique de la répartitions des biens.

Nos données proviennent du site kaggle : https://www.kaggle.com/datasets/thedevastator/airbnb-prices-in-european-cities

Nous disposons du prix des locations la semaine et le week-end pour 10 capitales européennes.

Problématique: quels sont les facteurs qui permettent d’expliquer la différence de prix entre deux biens?

Premières analyses

Prix moyens des Airbnbs selon la période
prix_moyen Période
270.86 Semaine
276.33 Weekend

On cherche à quantifier l’influence de plusieurs variables explicatives sur le prix des Airbnbs. Plus précisément, nous cherchons les variables qui permettent d’expliquer la différence de prix entre la semaine et le weekend. On observe dans un premier temps que cette différence de prix n’est pas la même pour tous les biens, comme le montre les boxplots suivant:

Il est clair que les Airbnbs sont plus chers le weekend que la semaine. On peut remarquer cependant que la différence des prix n’est pas exactement la même pour tous les Airbnbs. Il semblerait en effet que plus un logement est cher la semaine, plus ce dernier est cher le weekend. Nous avons fait le choix de limiter la taille de l’échantillon représenté car, dans notre base de données, il y a une trentaine de logements dont le coût de location dépasse les 8 000€, ce qui compromet la comparaison.

Nous allons à présent modéliser le prix des logements en fonction des variables suivantes:

  • room_type : facteur à 3 modalités (appartement privé, chambre partagé, chambre privée)
  • person_capacity : Nombre de personnes pouvant loger dans l’appartement
  • host_is_superhost : Variable binaire (1 si Propriétaire à été reconnu comme quelqu’un de confiance par les utilisateurs)
  • cleanliness_rating : note de propreté sur 10
  • guest_satsifaction_overall : note de satsifaction des utilisateurs sur 100
  • bedrooms : nombre de chambre
  • metro_dist : distance au métro
  • dist : distance au centre de la ville
library(plotly)
## 
## Attachement du package : 'plotly'
## L'objet suivant est masqué depuis 'package:ggplot2':
## 
##     last_plot
## L'objet suivant est masqué depuis 'package:stats':
## 
##     filter
## L'objet suivant est masqué depuis 'package:graphics':
## 
##     layout
library(dplyr)
## 
## Attachement du package : 'dplyr'
## Les objets suivants sont masqués depuis 'package:stats':
## 
##     filter, lag
## Les objets suivants sont masqués depuis 'package:base':
## 
##     intersect, setdiff, setequal, union

Analyse des corrélations

## corrplot 0.92 loaded

A la vue du graphique précédent, on n’observe pas de différence significative entre la corrélation des variables la semaine et le week-end.

Anova

On peut réaliser une analyse de variance (ANOVA) pour déterminer si le prix moyen des logements diffère significativement entre les différentes catégories de room_type ou de host_is_superhost.

On remarque que les maisons et les appartements entiers dont les propriétaires ne sont pas super host ont tendance à être plus chers que ceux dont les propriétaires sont super host, ce qui semble déconcertant. On observe l’inverse pour ce qui est des chambres partagés et des chambres simples.

Analyse de la variance pour les prix de la semaine

Résultats de l’ANOVA pour les prix de la semaine
term df sumsq meansq statistic p.value
room_type 2 81985544 40992772.2 351.15 0
host_is_superhost 1 6005806 6005805.6 51.45 0
Residuals 26324 3073069223 116740.2 NA NA
Comparaison multiple de Tukey pour les prix de la semaine
diff lwr upr p adj
Private room-Entire home/apt -113.35 -123.60 -103.11 0.00
Shared room-Entire home/apt -179.52 -238.56 -120.47 0.00
Shared room-Private room -66.16 -125.44 -6.89 0.02

Analyse de la variance pour les prix du week-end

## Analyse de variance pour les prix du week-end
anova_result <- aov(prix_weekend ~ room_type + host_is_superhost, data=data_R_bnb)
anova_summary <- tidy(anova_result)
kable(anova_summary, digits = 2, caption = "Résultats de l'ANOVA pour les prix du week-end")
Résultats de l’ANOVA pour les prix du week-end
term df sumsq meansq statistic p.value
room_type 2 66080378 33040188.86 416.39 0
host_is_superhost 1 8009146 8009146.03 100.93 0
Residuals 26324 2088799673 79349.63 NA NA
tukey_result <- TukeyHSD(anova_result, "room_type")
tukey_summary <- as.data.frame(tukey_result$`room_type`)
kable(tukey_summary, digits = 2, caption = "Comparaison multiple de Tukey pour les prix du week-end")
Comparaison multiple de Tukey pour les prix du week-end
diff lwr upr p adj
Private room-Entire home/apt -101.53 -109.98 -93.09 0
Shared room-Entire home/apt -167.26 -215.95 -118.58 0
Shared room-Private room -65.73 -114.60 -16.86 0

Régression linéaire

#regression semaine
reg1 <-  lm(prix_semaine~room_type+person_capacity+host_is_superhost+cleanliness_rating+bedrooms+guest_satisfaction_overall+metro_dist+dist, data = data_R_bnb)
tbl1 <- kable(summary(reg1)$coefficients, caption = "Résumé de la régression linéaire pour la semaine", border = "solid")

# reg lin weekend
reg2 <-  lm(prix_weekend~room_type+person_capacity+host_is_superhost+cleanliness_rating+guest_satisfaction_overall+bedrooms+metro_dist+dist, data = data_R_bnb)
tbl2 <- kable(summary(reg2)$coefficients, caption = "Résumé de la régression linéaire pour le weekends", border = "solid")

### Résumé de la régression linéaire pour le premier jeu de données
tbl1
Résumé de la régression linéaire pour la semaine
Estimate Std. Error t value Pr(>|t|)
(Intercept) 208.0888913 24.9287917 8.347332 0.0000000
room_typePrivate room -100.1301521 5.1665056 -19.380633 0.0000000
room_typeShared room -176.1526713 24.9145960 -7.070260 0.0000000
person_capacity 3.7584001 2.3031164 1.631876 0.1027176
host_is_superhostTrue -36.9849807 5.0332327 -7.348156 0.0000000
cleanliness_rating -4.4837857 3.1759480 -1.411794 0.1580223
bedrooms 85.9268580 4.2098371 20.410970 0.0000000
guest_satisfaction_overall 0.5108604 0.3369012 1.516351 0.1294426
metro_dist -31.9233201 3.0961241 -10.310737 0.0000000
dist 6.2195975 1.0834416 5.740593 0.0000000
### Résumé de la régression linéaire pour le deuxième jeu de données
tbl2
Résumé de la régression linéaire pour le weekends
Estimate Std. Error t value Pr(>|t|)
(Intercept) 237.0565123 20.5103482 11.5578980 0.0000000
room_typePrivate room -90.7245344 4.2507808 -21.3430281 0.0000000
room_typeShared room -165.4936406 20.4986686 -8.0733849 0.0000000
person_capacity 3.2180134 1.8949061 1.6982443 0.0894735
host_is_superhostTrue -41.2353827 4.1411295 -9.9575206 0.0000000
cleanliness_rating 1.9060316 2.6130348 0.7294322 0.4657438
guest_satisfaction_overall -0.2504983 0.2771879 -0.9037127 0.3661561
bedrooms 74.3852759 3.4636747 21.4758264 0.0000000
metro_dist -32.1767754 2.5473590 -12.6314254 0.0000000
dist 5.9211076 0.8914096 6.6424095 0.0000000

Conclusion

Aucune caractéristique ne semblent plus importante que les autres quand il s’agit d’expliquer la différence de prix des Airbnb entre la semaine et le weekend.